import request from '@/utils/requestUtil'

export function memberLogin(params) {
	return request({
		method: 'POST',
		url: '/sso/login',
		header: {
			'content-type': 'application/x-www-form-urlencoded'
		},
		data: params,
	})
}

export function memberInfo() {
	return request({
		method: 'GET',
		url: '/sso/info',
	})
}

export function memberRegister(params) {
	return request({
		method: 'POST',
		url: '/sso/register',
		header: {
			'content-type': 'application/x-www-form-urlencoded'
		},
		data: params,
	})
}

export function getAuthCode(telephone) {
	return request({
		method: 'GET',
		url: '/sso/getAuthCode',
		params: {
			telephone: telephone
		}
	})
}

export function updateMemberInfo(params) {
	// 创建请求参数的副本（避免修改原始对象）
	const formParams = { ...params };
	
	// 处理生日字段 - 如果存在且是字符串格式，确保使用标准日期格式
	if (formParams.birthday && typeof formParams.birthday === 'string') {
		try {
			// 尝试解析日期字符串
			const dateString = formParams.birthday;
			// 不再转换为时间戳，保留标准日期格式 YYYY-MM-DD，这样Java可以直接解析
			// 确认格式是否正确
			if (/^\d{4}-\d{2}-\d{2}$/.test(dateString)) {
				// 格式已经是YYYY-MM-DD，保持不变
				console.log('使用标准日期格式:', dateString);
				formParams.birthday = dateString;
			} else {
				// 如果格式不正确，尝试转换为标准格式
				const date = new Date(dateString);
				if (!isNaN(date.getTime())) {
					const year = date.getFullYear();
					const month = String(date.getMonth() + 1).padStart(2, '0');
					const day = String(date.getDate()).padStart(2, '0');
					formParams.birthday = `${year}-${month}-${day}`;
					console.log('转换为标准日期格式:', formParams.birthday);
				} else {
					// 无效日期，删除该字段
					console.error('无效日期:', dateString);
					delete formParams.birthday;
				}
			}
		} catch (e) {
			console.error('日期处理错误:', e);
			// 如果转换失败，移除生日字段以避免错误
			delete formParams.birthday;
		}
	}
	
	// 调试输出最终提交的参数
	console.log('提交到服务器的参数:', formParams);
	
	// 统一使用表单格式提交，确保与后端@RequestParam兼容
	return request({
		method: 'POST',
		url: '/sso/updateInfo',
		header: {
			'content-type': 'application/x-www-form-urlencoded'
		},
		data: formParams
	});
}

export function uploadAvatar(imageUrl) {
	// 接收MinIO返回的图片URL，调用后端接口更新用户头像
	return request({
		method: 'POST',
		url: '/sso/updateAvatar',
		header: {
			'content-type': 'application/x-www-form-urlencoded'
		},
		data: {
			avatar: imageUrl
		}
	})
}
